• Stars
    star
    263
  • Rank 155,624 (Top 4 %)
  • Language
    JavaScript
  • Created almost 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

작성된 마크다운의 내용과 이미지를 본인 티스토리에 업로드하는 프로젝트

markdown-tistory

node npm npm npm

PC에 작성된 마크다운 파일을 티스토리 OAuth API를 통해 HTML, 이미지, 구글 광고로 변환하여 포스팅해주는 스크립트

티스토리

1. Install

현재 nodejs 6.9.2 버전에서 개발되어있기에 6.x 버전 이상을 사용하길 권장드립니다.

기존의 npm 패키지 설치와 동일하게 아래와 같은 커맨드로 설치가 가능합니다.

npm install -g markdown-tistory

2. Usage

기본적으로 OAuth 키가 발급 되어야 사용 가능합니다.
가장 먼저 키 발급을 해주세요

2-1. 키 발급

먼저 티스토리 API로 이동하여 임시 클라이언트를 등록합니다.

(주의 : 서비스 URL 과 callback 경로에는 꼭 스크린샷처럼 http://localhost:5000/callback 으로 적어주세요.)

티스토리 API

등록 후 발급되는 client id와 secret key를 사용할 예정이니 메모장에 복사하시고

티스토리 클라이언트

명령 프롬프트(윈도우), 터미널(맥/리눅스)을 열어 markdown-tistory init 에디터 명령어를 입력하여, 값을 등록합니다.

아래중 하나의 에디터는 설치되어 있어야 합니다.

  • sublime
    • Sublime Text
  • atom
    • Atom Editor
  • code
    • Visual Studio Code
  • vim
  • emacs

PC에 설치된 에디터의 종류에 따라 입력하시면 됩니다.

예제)

markdown-tistory init code

오픈 된 파일에는 다음과 같은 값을 등록하시면 됩니다. (스크린샷은 Visual Studio Code 에디터 입니다.)

blog_json

  • blogName : 본인의 블로그 주소 (ex: jojoldu.tistory.com의 jojoldu를 입력하시면 됩니다.)
  • clientId : API에 등록한 client id
  • secretKey : API에 등록한 secret key
  • adsenseCode : 구글광고 코드

해당 파일 저장후, AccessToken을 발급 받겠습니다.
아래의 명령어를 입력합니다.

markdown-tistory token

브라우저가 열려 다음과 같이 OAuth2 인증이 등장합니다.

oauth

허가하기를 클릭하시면 터미널에 다음과 같이 성공 메세지가 출력됩니다.

issue_token

이제 인증키는 모두 발급 받았습니다.

티스토리 AccessToken은 1개월의 유효기간을 갖고 있습니다.
한달이 지나서 키가 만료되었다는 메세지가 보이면 다시 키를 발급(markdown-tistory token) 받으시면 됩니다.

2-2. 글 등록

마크다운 파일 위치를 지정하면 지정된 위치의 해당 파일을,
위치를 지정하지 않으면 현재 위치에서 해당 파일을 찾아 포스팅합니다.

  1. 현재 위치의 마크다운 파일
markdown-tistory write
  1. 절대주소로 마크다운 파일 지정
markdown-tistory write /Users/woowahan/Documents/git/markdown-tistory/README.md
  1. 현재 터미널 위치의 상대주소로 마크다운 파일 지정
markdown-tistory write ./README.md

비공개로 포스팅 되니, 본인 블로그의 관리자 페이지로 이동하여 게시글을 공개로 전환하시면 됩니다.

2-3. 등록된 글 수정

글 수정은 포스팅 ID가 꼭 필요합니다.

postid

(여기서 379가 포스팅Id입니다.)

markdown-tistory update 파일위치 포스팅ID

만약 파일위치를 입력하지 않으시면, 현재 위치의 마크다운 파일이 선택됩니다.

markdown-tistory update 포스팅ID

2-4. 블로그 정보 수정

이미 만들어진 blog.json 정보를 수정하고 싶다면 아래의 명령어를 사용하시면 됩니다.

('blog.json' 은 유저 홈 디렉토리에 생성이 됩니다.)

markdown-tistory show 에디터

생성된 blog.json이 지정한 에디터에 오픈됩니다.

2-5. 구글 애드센스

본인의 구글 애드센스코드를 미리 등록해야만 변환이 됩니다.
먼저 아래 명령어를 입력합니다.

markdown-tistory ad 에디터

ad.txt파일이 하나 생성되어 에디터로 표시됩니다.
아래처럼 본인의 애드센스 코드를 입력합니다.

('ad.txt' 은 유저 홈 디렉토리에 생성이 됩니다.)

ad_txt

저장후, 마크다운 파일 본문에 [[ad]] 를 추가하면 포스팅시에 자동으로 구글광고가 해당 영역에 추가됩니다.

마크다운 작성

ad_markdown

티스토리 반영

ad_tistory

아직 구글 애드센스 계정이 없으시다면 링크를 참고하여 가입해주세요.

3. 주의사항

  • 티스토리에서 5MB 이상의 이미지는 허용하지 않습니다.

    • 400에러가 발생하며 업로드가 안되니 웬만하면 5MB 이하로 맞춰주세요.
  • 문장의 첫 글자에 코드 문법이 있으면 파싱 에러가 발생합니다.

    • 띄어쓰기 한번을 해주세요
  • sudo를 통해 명령어를 실행하면 이후 에디터에서 저장이 안됩니다

    • init, token등 에디터를 통해 수정하는 기능들은 sudo 없이 실행해주세요
  • 게시글의 제목은 마크다운 파일명을 기준으로 합니다.

4. Release Note

  • 0.1.6

    • 포스팅 수정 기능 추가
    • Promise -> async/await로 코드 개선
  • 0.1.5

    • 마크다운 파일 내에 이미지 경로만 있어도 정상 업로드 되도록 수정
  • 0.1.2

    • 파일명만 입력할 경우 현재 위치로 이미지 경로 인식못하는 버그 수정
  • 0.1.1

    • 구글 애드센스 자동 추가
  • 0.1.0

    • 전체코드 리팩토링

      • 콜백 -> Promise
      • Mocha 테스트 코드 추가
      • 도메인 Layer 분리
    • 마크다운 파일명으로 작성하기 기능 추가

      • 마크다운 파일명을 write와 함께 입력하면 해당 마크다운 파일을 티스토리에 작성
    • 이미지 상대경로외에 절대경로 검색 기능 추가

      • 기존에 마크다운 파일 위치를 기준으로만 가능했던 이미지 등록이 절대주소도 가능하도록 수정
    • 마크다운 CSS 적용 스크립트 제거

      • 해당 스크립트로 인해 RSS가 깨짐
      • 티스토리에 직접 CSS 파일 추가하기를 권장
  • 0.0.8

    • 별도의 css 추가없이 마크다운 스타일 적용
    • blog.json & token.json 홈 디렉토리에 생성 및 읽기로 변경 (업데이트시마다 init 했던 점 수정)
  • 0.0.7

    • 오타수정 (secrete -> secret)
  • 0.0.6

    • multi markdown의 테이블 문법 적용
    • 텍스트 내부에 code 블럭 문법 오류 수정
  • 0.0.5

    • 컬러 console 효과
    • http, https 등의 이미지 주소는 컨버팅 대상에서 제외
    • 이미지 주소 찾지 못하는 경우 해당 이미지 제외하고 다음 프로세스 진행되도록 기능 수정
  • 0.0.4

    • 기본기능 및 npm 등록

TO DO

  • 등록된 게시글 마크다운 파일로 다운로드 기능
  • 이글루스 블로그 추가

참고

More Repositories

1

junior-recruit-scheduler

주니어 개발자 채용 정보
JavaScript
11,200
star
2

freelec-springboot2-webservice

Java
1,074
star
3

blog-code

http://jojoldu.tistory.com/ 에서 제공하는 예제 code
Java
642
star
4

spring-batch-in-action

내가 만드는 Spring Batch In Action
Java
596
star
5

springboot-webservice

스프링부트로 웹서비스 구축하기 시리즈
Java
573
star
6

review

세미나 및 책, 강연등의 후기
HTML
435
star
7

translator

IntelliJ Translate Plugin
Java
204
star
8

infra-summary

웹 개발자를 위한 서버/인프라 정리
134
star
9

spring-batch-querydsl

스프링배치와 QuerydslPagingItemReader
Java
130
star
10

oop-java

객체지향에 집중하기 위한 순수 Java 프로젝트
Java
80
star
11

monorepo-nestjs-typeorm

Monorepo by Nestjs & TypeORM
TypeScript
73
star
12

nodejs-unit-test

NodeJS Unit Test
TypeScript
65
star
13

spring-boot-aws-mock

Queue, Redis, Etc (Aws Service Mock Library for Spring Boot)
Java
58
star
14

springboot-jenkins-docker-slack

스프링부트 + 젠킨스 + 깃허브 + 슬랙
Java
47
star
15

postgresql-in-action

PostgreSQL Tips
JavaScript
44
star
16

point

SQS를 이용한 비동기 포인트 시스템
Java
40
star
17

intellij-development

IntelliJ IDEA로만 개발 하기
Java
37
star
18

jojoldu.github.io

이력서
HTML
36
star
19

spring-boot-redis-tip

실습과 코드로 정리하는 레디스 팁
Java
33
star
20

fastcampus-sql-tunning

패스트캠퍼스 - 개발자를 위한 SQL 튜닝 캠프
32
star
21

fastcampus-java

Java
32
star
22

my-cli

나만의 커맨드라인 스크립트 만들기 튜토리얼
JavaScript
26
star
23

ts-api-template

TypeScript
25
star
24

vacation-homework

방학 숙제용
TypeScript
24
star
25

spring-boot-kotlin-test-in-action

Kotlin & Spring Boot Test Code Example
Kotlin
21
star
26

jenkins-pipeline

젠킨스 파이프라인 정리
Java
19
star
27

springboot-deploy

SpringBoot & AWS Auto Scaling & Code Pipeline
Java
16
star
28

gh-in-action

Github Action Tips, Examples
TypeScript
16
star
29

intellij-idea-tutorials

IntelliJ 튜토리얼
15
star
30

dev-beginner-group

초보개발자모임 챗봇 & 메일구독
JavaScript
14
star
31

devbeginner

초보개발자모임
HTML
13
star
32

kotlin-in-action

Kotlin Example
Kotlin
13
star
33

react-unit-test

TypeScript
13
star
34

md-tistory

markdown uploader for tistory (by type stack)
TypeScript
12
star
35

blog-comments

블로그에 utteranc 사용하기
Shell
12
star
36

spring-boot-kotlin-querydsl

Kotlin
11
star
37

jira-in-action

Jira 사용팁
11
star
38

springboot-sqs-example

spring boot & aws sqs example
Java
10
star
39

fastcampus-devops-cloud-platform

패스트캠퍼스 DevOps로 활용하는 클라우드 플랫폼 강의 정리
10
star
40

datagrip-in-action

JetBrains DataGrip Tips
10
star
41

linux-thread

Java
10
star
42

fc-spring-boot

패스트캠퍼스 - 스프링부트를 활용한 쇼핑몰 프로젝트 CAMP
Java
10
star
43

aws-lambda-telegram-travisci

AWS로 서버없이 구축하는 텔레그램 Bot
JavaScript
9
star
44

woowa-tech-2019-spring-batch

Java
9
star
45

fastcampus-aws-workshop

패스트캠퍼스 AWS 운영 서버 관리 마스터 워크샵
9
star
46

income-bot

수익 알람 Bot
Vue
9
star
47

springboot-rest-docs-spock

spring rest docs & spock & rest assured & gradle multi module
HTML
8
star
48

fastcampus-vuejs

패스트캠퍼스 강의 정리
8
star
49

nestjs-template-engine

NestJS + Handlebars
TypeScript
7
star
50

spring-batch-integration-in-action

spring batch integration 예제
Java
7
star
51

blog-springboot3

Java
7
star
52

gradle-travisci-coverall

Gradle 프로젝트 Travis CI & Coverall 연동
Java
6
star
53

jest-in-action

TypeScript
6
star
54

wikibook-spring-batch

예제 코드
Java
6
star
55

nestjs-in-action

TypeScript
6
star
56

devbeginner-news

빠르게 만들어보는 뉴스피드
CSS
6
star
57

aws-beanstalk-tunning

AWS Beanstalk 성능 튜닝 시리즈
Java
5
star
58

clean-code-tdd-kotlin

Kotlin
5
star
59

stock-calculator

시리즈라운드별 지분/환산 금액 계산기
HTML
5
star
60

refactoring2-ts

Refactoring 2 with Typescript & Jest
TypeScript
5
star
61

spring-boot-multi-datasource

Spring Boot MVC/Batch Multi Datasource
Java
4
star
62

jojoldu

4
star
63

fleet-in-action

Fleet (JetBrains New Editor) Tutorial
4
star
64

spring-boot-aws

Spring Boot & AWS Integration Example
Java
4
star
65

intellij-git-tip

IntelliJ Git 팁
Java
4
star
66

domain-oriented-observability

TypeScript
4
star
67

udemy-react-query-spa

TypeScript
3
star
68

teamcity-in-action

팀시티 (Teamcity) 팁 모음
Shell
3
star
69

lerna-in-action

TypeScript
3
star
70

tistory-ppm

티스토리 월별 글 발행수 추적기
JavaScript
3
star
71

ecs-docker-compose-nodejs

Typescript & Docker Compose & AWS ECS
TypeScript
3
star
72

spring-batch-benchmark

Spring Batch Performance BenchMark
Java
3
star
73

codesoom-react

3
star
74

begin-docker

신림프로그래머 도커 스터디
Java
3
star
75

bns

Bitly And Sns
Java
3
star
76

next-step

박재성님의 next step 교재 스터디
Java
3
star
77

spring-boot-postgresql

Java
3
star
78

jenkins-beanstalk-multi-module

AWS Beanstalk + EC2 Jenkins + Gradle Multi Module
Java
3
star
79

chatgpt-in-action

chatGPT 테스트
TypeScript
2
star
80

vectordb-embedding

TypeScript
2
star
81

ulysses-in-action

2
star
82

kotlin-mongodb

Kotlin
2
star
83

koscom-springboot-aws

Java
2
star
84

gradle-multi-module-coveralls

Java
2
star
85

pinpoint-node-in-action

pinpoint node agent Test
JavaScript
2
star
86

java-note-professionals

Java
2
star
87

next-step-review

Next Step 코드리뷰 참고용
Java
2
star
88

tuto-handlebar

HTML
2
star
89

intellij-settings

intellij settings sync
Java
2
star
90

ngrinder-in-action

Ngrinder (Performance Testing Tools)
Shell
2
star
91

node-performance-in-action

TypeScript
2
star
92

xunit-tdd-ts

xUnit Test Framework Building by TypeScript
TypeScript
2
star
93

lambda-in-action

JavaScript
2
star
94

markdown-tistory-vs-plugin

markdown-tistory Visual Studio Code 플러그인
JavaScript
1
star
95

mongodb-in-action

TypeScript
1
star
96

ddd-java

Domain Driven Design
Java
1
star
97

git-flow-example

사내 깃플로우 예제
Java
1
star
98

resume

1
star
99

intellij-task-example

IntelliJ와 이슈관리 시스템 연동 연습 자장소
Java
1
star
100

javascript-study

JavaScript
1
star