From f5856b05b623777c4e6a968698ff39e629cb44e1 Mon Sep 17 00:00:00 2001 From: ariasuni Date: Thu, 25 Jun 2026 13:50:02 +0200 Subject: [PATCH 1/2] =?UTF-8?q?D=C3=A9placer=20=C2=ABSections=20suppl?= =?UTF-8?q?=C3=A9mentaires=C2=BB=20depuis=20Param=C3=A8tres=20vers=20Pages?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/screens/AtelierPages.svelte | 12 +++- .../components/screens/Settings.svelte | 29 +-------- .../screens/intern/ListContenu.svelte | 53 ++++++++++++---- assets/scripts/routes/atelier-list-pages.ts | 61 ++++++++++++++++++- assets/scripts/routes/settings.ts | 55 +---------------- 5 files changed, 113 insertions(+), 97 deletions(-) diff --git a/assets/scripts/components/screens/AtelierPages.svelte b/assets/scripts/components/screens/AtelierPages.svelte index 2dcc0233..69dfa4bf 100644 --- a/assets/scripts/components/screens/AtelierPages.svelte +++ b/assets/scripts/components/screens/AtelierPages.svelte @@ -8,7 +8,9 @@ pages: any[] | undefined showArticles: boolean | undefined currentRepository: ScribouilliGitRepo - conflict: ScribouilliState["conflict"] + conflict: ScribouilliState['conflict'] + blogEnabled: boolean + onBlogToggle: (activated: boolean) => void } let { @@ -16,8 +18,10 @@ pages, showArticles, currentRepository, - conflict - }: Props = $props(); + conflict, + blogEnabled, + onBlogToggle, + }: Props = $props() diff --git a/assets/scripts/routes/atelier-list-pages.ts b/assets/scripts/routes/atelier-list-pages.ts index 476a659c..22145408 100644 --- a/assets/scripts/routes/atelier-list-pages.ts +++ b/assets/scripts/routes/atelier-list-pages.ts @@ -1,21 +1,76 @@ import { replaceComponent } from '../routeComponentLifeCycle.svelte' import { setCurrentRepositoryFromQuerystring } from '../actions/current-repository.ts' import AtelierPages from '../components/screens/AtelierPages.svelte' -import { showArticles } from '../actions/article' +import { blogIndex, showArticles } from '../actions/article' import { Context } from 'page' import type { ScribouilliState } from '../store.ts' +import { writeFileAndCommit, deleteFileAndCommit } from '../actions/file' +import { + getCurrentRepoPages, + getCurrentRepoArticles, +} from '../actions/current-repository.ts' +import { handleErrors } from '../utils.ts' + +const blogMdContent = `--- +layout: page +title: Articles +permalink: /articles/ +blog_index: true +--- + + +{% for post in site.posts %} + +
+{% endfor %} +` const mapStateToProps = (state: ScribouilliState) => { - if (!state.currentRepository) { + const blogFile = blogIndex(state) + + const { currentRepository, gitAgent } = state + if (!gitAgent) { + throw new TypeError('gitAgent is undefined') + } + if (!currentRepository) { throw new TypeError('currentRepository is undefined') } return { pages: state.pages, buildStatus: state.buildStatus, - currentRepository: state.currentRepository, + currentRepository: currentRepository, showArticles: showArticles(state), conflict: state.conflict, + blogEnabled: blogFile !== undefined, + onBlogToggle: async (activated: boolean): Promise => { + try { + if (activated) { + await writeFileAndCommit( + 'blog.md', + blogMdContent, + 'Activation du blog', + ) + } else { + await deleteFileAndCommit('index.md', 'Désactivation du blog') + } + await getCurrentRepoArticles() + await getCurrentRepoPages() + + gitAgent.safePush() + } catch (msg: any) { + handleErrors(msg) + } + }, } } diff --git a/assets/scripts/routes/settings.ts b/assets/scripts/routes/settings.ts index 8a190f81..95d48f7c 100644 --- a/assets/scripts/routes/settings.ts +++ b/assets/scripts/routes/settings.ts @@ -3,47 +3,17 @@ import { replaceComponent } from '../routeComponentLifeCycle.svelte' import store, { type ScribouilliState } from '../store' import { getCurrentRepoPages, - getCurrentRepoArticles, setCurrentRepositoryFromQuerystring, saveCustomCSS, } from '../actions/current-repository.ts' import { handleErrors } from '../utils' import Settings from '../components/screens/Settings.svelte' -import { writeFileAndCommit, deleteFileAndCommit } from '../actions/file' -import { blogIndex, showArticles } from '../actions/article' +import { showArticles } from '../actions/article' import { Context } from 'page' -const blogMdContent = `--- -layout: page -title: Articles -permalink: /articles/ -blog_index: true ---- - - -{% for post in site.posts %} - -
-{% endfor %} -` - function mapStateToProps(state: ScribouilliState) { - const blogFile = blogIndex(state) // TODO: this should probably be `state` not `store.state` - const { currentRepository, gitAgent } = store.state - - if (!gitAgent) { - throw new TypeError('gitAgent is undefined') - } + const { currentRepository } = store.state if (!currentRepository) { throw new TypeError('currentRepository is undefined') @@ -53,32 +23,11 @@ function mapStateToProps(state: ScribouilliState) { buildStatus: state.buildStatus, theme: state.theme, deleteRepositoryUrl: `${currentRepository.publicRepositoryURL}/settings#danger-zone`, - blogEnabled: blogFile !== undefined, showArticles: showArticles(state), currentRepository: state.currentRepository, onUpdateTheme: (theme: { css: string }): void => { saveCustomCSS(theme.css).catch(handleErrors) }, - onToggleBlog: async (activated: boolean): Promise => { - try { - if (activated) { - await writeFileAndCommit( - 'blog.md', - blogMdContent, - 'Activation du blog', - ) - } else { - await deleteFileAndCommit('blog.md', 'Désactivation du blog') - } - await getCurrentRepoArticles() - await getCurrentRepoPages() - - gitAgent.safePush() - } catch (msg) { - //@ts-ignore - handleErrors(msg) - } - }, } } From 3d1eea80ba6b56fa4dff3d0cc0002d8f6b78a1db Mon Sep 17 00:00:00 2001 From: ariasuni Date: Sat, 27 Jun 2026 18:13:04 +0200 Subject: [PATCH 2/2] =?UTF-8?q?Corrige=20la=20suppression=20de=20la=20page?= =?UTF-8?q?=20=C2=ABArticles=C2=BB=20si=20le=20nom=20a=20=C3=A9t=C3=A9=20c?= =?UTF-8?q?hang=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/scripts/routes/atelier-list-pages.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/scripts/routes/atelier-list-pages.ts b/assets/scripts/routes/atelier-list-pages.ts index 22145408..904fd48e 100644 --- a/assets/scripts/routes/atelier-list-pages.ts +++ b/assets/scripts/routes/atelier-list-pages.ts @@ -61,7 +61,8 @@ const mapStateToProps = (state: ScribouilliState) => { 'Activation du blog', ) } else { - await deleteFileAndCommit('index.md', 'Désactivation du blog') + const blogPath = blogIndex(state) as string + await deleteFileAndCommit(blogPath, 'Désactivation du blog') } await getCurrentRepoArticles() await getCurrentRepoPages()